]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
messageTray: Remove useActionIcons feature
authorJasper St. Pierre <jstpierre@mecheye.net>
Mon, 14 Oct 2013 03:13:31 +0000 (23:13 -0400)
committerJasper St. Pierre <jstpierre@mecheye.net>
Mon, 21 Oct 2013 16:30:25 +0000 (12:30 -0400)
This can be put in the legacy notification daemon with the new
addButtonFull API, to create icon names for actions.

https://bugzilla.gnome.org/show_bug.cgi?id=710137

js/ui/messageTray.js
js/ui/notificationDaemon.js

index 9e6e5c0bb5d6d3d552d82b19f7edb175def8bcd9..2e1780ae71ce75cafef10e54bdf0d336247781d9 100644 (file)
@@ -503,7 +503,6 @@ const Notification = new Lang.Class({
         this.focused = false;
         this.acknowledged = false;
         this._destroyed = false;
-        this._useActionIcons = false;
         this._customContent = false;
         this.bannerBodyText = null;
         this.bannerBodyMarkup = false;
@@ -866,17 +865,9 @@ const Notification = new Lang.Class({
     // If the button is clicked, the notification will emit the
     // %action-invoked signal with @id as a parameter
     addAction: function(id, label) {
-        let button = new St.Button({ can_focus: true });
-
-        let iconName = strHasSuffix(id, '-symbolic') ? id : id + '-symbolic';
-        if (this._useActionIcons && Gtk.IconTheme.get_default().has_icon(iconName)) {
-            button.add_style_class_name('notification-icon-button');
-            button.child = new St.Icon({ icon_name: iconName });
-        } else {
-            button.add_style_class_name('notification-button');
-            button.label = label;
-        }
-
+        let button = new St.Button({ style_class: 'notification-button',
+                                     label: label,
+                                     can_focus: true });
         return this.addButton(id, button);
     },
 
@@ -896,10 +887,6 @@ const Notification = new Lang.Class({
         this.forFeedback = forFeedback;
     },
 
-    setUseActionIcons: function(useIcons) {
-        this._useActionIcons = useIcons;
-    },
-
     _styleChanged: function() {
         this._spacing = this._table.get_theme_node().get_length('spacing-columns');
     },
index 55d98a967961e47428136f057b1000917c2f2a3d..8410aedf4fe790a3f76fb61cb9bc4e3a38866dbb 100644 (file)
@@ -351,6 +351,19 @@ const NotificationDaemon = new Lang.Class({
         return invocation.return_value(GLib.Variant.new('(u)', [id]));
     },
 
+    _makeButton: function(id, label, useActionIcons) {
+        let button = new St.Button({ can_focus: true });
+        let iconName = strHasSuffix(id, '-symbolic') ? id : id + '-symbolic';
+        if (useActionIcons && Gtk.IconTheme.get_default().has_icon(iconName)) {
+            button.add_style_class_name('notification-icon-button');
+            button.child = new St.Icon({ icon_name: iconName });
+        } else {
+            button.add_style_class_name('notification-button');
+            button.label = label;
+        }
+        return button;
+    },
+
     _notifyForSource: function(source, ndata) {
         let [id, icon, summary, body, actions, hints, notification] =
             [ndata.id, ndata.icon, ndata.summary, ndata.body,
@@ -414,15 +427,18 @@ const NotificationDaemon = new Lang.Class({
         notification.setImage(image);
 
         if (actions.length) {
-            notification.setUseActionIcons(hints['action-icons'] == true);
+            let useActionIcons = (hints['action-icons'] == true);
+
             for (let i = 0; i < actions.length - 1; i += 2) {
-                if (actions[i] == 'default')
+                let [actionId, label] = [actions[i], actions[i+1]];
+                if (actionId == 'default') {
                     notification.connect('clicked', Lang.bind(this,
                         function() {
                             this._emitActionInvoked(ndata.id, "default");
                         }));
-                else
-                    notification.addAction(actions[i], actions[i + 1]);
+                } else {
+                    notification.addButton(actionId, this._makeButton(id, label, useActionIcons));
+                }
             }
         }
         switch (hints.urgency) {